"""
@Project ：Python 
@File    ：09-数据容器的通用操作.py
@IDE     ：PyCharm 
@Author  ：DongCha
@Date    ：2023/11/8 0008 11:37 
"""

# 遍历：
# 都支持 for 循环遍历
# 列表、元组、字符串支持 while 循环遍历，集合、字典不支持（无下标索引）
# 方法：
# len(容器) 统计元素个数
# max(容器) 统计容器最大元素
# min(容器) 统计容器最小元素

my_list = [1, 2, 3, 4, 5]
my_tuple = (1, 2, 3, 4, 5)
my_str = "abcdefg"
my_set = {1, 2, 3, 4, 5}
my_dict = {"key1": 1, "key2": 2, "key3": 3, "key4": 4, "key5": 5}

# len() 容器元素个数
print("==========len==========")

print(f"列表 元素个数有：{len(my_list)}")
print(f"元组 元素个数有：{len(my_tuple)}")
print(f"字符串 元素个数有：{len(my_str)}")
print(f"集合 元素个数有：{len(my_set)}")
print(f"字典 元素个数有：{len(my_dict)}")

# max() 容器最大元素
print("==========max==========")

print(f"列表 容器最大元素: {max(my_list)}")
print(f"元组 容器最大元素: {max(my_tuple)}")
print(f"字符串 容器最大元素: {max(my_str)}")
print(f"集合 容器最大元素: {max(my_set)}")
print(f"字典 容器最大元素: {max(my_dict)}")

# min() 容器最小元素
print("==========min==========")

print(f"列表 容器最小元素: {min(my_list)}")
print(f"元组 容器最小元素: {min(my_tuple)}")
print(f"字符串 容器最小元素: {min(my_str)}")
print(f"集合 容器最小元素: {min(my_set)}")
print(f"字典 容器最小元素: {min(my_dict)}")

# 数据类型转换
# list
print("==========list==========")

print(f"列表 转列表：{list(my_list)}")
print(f"元组 转列表：{list(my_tuple)}")
print(f"字符串 转列表：{list(my_str)}")
print(f"集合 转列表：{list(my_set)}")
print(f"字典 转列表：{list(my_dict)}")

# 元组
print("==========元组==========")

print(f"列表 转元组：{tuple(my_list)}")
print(f"元组 转元组：{tuple(my_tuple)}")
print(f"字符串 转元组：{tuple(my_str)}")
print(f"集合 转元组：{tuple(my_set)}")
print(f"字典 转元组：{tuple(my_dict)}")

# 字符串
print("==========字符串==========")

print(f"列表 转字符串：{str(my_list)}")
print(f"元组 转字符串：{str(my_tuple)}")
print(f"字符串 转字符串：{str(my_str)}")
print(f"集合 转字符串：{str(my_set)}")
print(f"字典 转字符串：{str(my_dict)}")

# 集合
print("==========集合==========")

print(f"列表 转集合：{set(my_list)}")
print(f"元组 转集合：{set(my_tuple)}")
print(f"字符串 转集合：{set(my_str)}")
print(f"集合 转集合：{set(my_set)}")
print(f"字典 转集合：{set(my_dict)}")

# 排序
# sorted(容器, [reverse=True]) 将指定容器排序 结果转为列表
print("==========排序==========")

my_list = [3, 1, 2, 5, 4]
my_tuple = (3, 1, 2, 5, 4)
my_str = "cabgdfe"
my_set = {3, 1, 2, 5, 4}
my_dict = {"key3": 3, "key1": 1, "key2": 2, "key5": 5, "key4": 4}

print(f"列表 排序结果：{sorted(my_list)}")
print(f"元组 排序结果：{sorted(my_tuple)}")
print(f"字符串 排序结果：{sorted(my_str)}")
print(f"集合 排序结果：{sorted(my_set)}")
print(f"字典 排序结果：{sorted(my_dict)}")

print(f"列表 反向排序结果：{sorted(my_list, reverse=True)}")
print(f"元组 反向排序结果：{sorted(my_tuple, reverse=True)}")
print(f"字符串 反向排序结果：{sorted(my_str, reverse=True)}")
print(f"集合 反向排序结果：{sorted(my_set, reverse=True)}")
print(f"字典 反向排序结果：{sorted(my_dict, reverse=True)}")
